/*! \file Driver.h
 *	\brief <write description for Driver.h>
 *
 *	created:	2009/11/12
 *	created:	12:11:2009   16:32
 *	filename: 	c:\src\main\libs\gd_dx9\Driver.h
 *	file path:	c:\src\main\libs\gd_dx9
 *	file base:	Driver
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */

#ifndef _GD_DX9_DRIVER_H_
#define _GD_DX9_DRIVER_H_

#pragma once

#include <d3d9.h>

#include <gd/Driver.h>
#include <utils/COMPointer.h>

namespace tt{

namespace gd{
class Device;
} //namespace gd

namespace gd_dx9{

class Driver : public gd::Driver
{
public:
	Driver(void);
	virtual ~Driver(void);

	utils::COMPointer<IDirect3D9>& d3dDriver();

protected:
	virtual SharedPtr<gd::Device> onCreateDevice(const SharedPtr<app::Window>&);

private:
	utils::COMPointer<IDirect3D9> m_pD3D;
};

} //namespace gd_dx9
} //namespace tt

#endif //_GD_DX9_DRIVER_H_
